/*这个是axios的核心js文件
   对axios的实例进行配置：请求超时，请求头等进行配置
   拦截器的开发
*/
//1.导入axios组件
import axios from 'axios'
//2.创建实例
const instance = axios.create({
    // http://localhost:8080/
    //baseURL: 'https://some-domain.com/api/',//请求url的前缀
    timeout: 3000,//超时时间
    //headers: {'X-Custom-Header': 'foobar'} //请求头
})
//todo 拦截器：请求拦截器和响应拦截器

// 添加请求拦截器
instance.interceptors.request.use( (config)=> {
    // 在发送请求之前做些什么
    //带上身份信息
    config.headers['Authorization'] = 'abcdefg1234567890'
    //从本地存储获取数据 ：localStorage
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use((response)=> {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response.data; //只返回结果中的data
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});

//把实例导出，供外部使用
export default instance
